This invention relates to managing the performance of user application program execution across a set of interconnected, cooperating, independent computer systems.
The user application programs do the useful work that is the purpose of the computer systems. These application programs form the units of work whose execution is managed by the computer""s operating system software. These application programs are said to form a distributed workload in the sense that they are independent programs that are dispersed across the set of systems for execution, while sharing a common set of performance goals.
These computer systems are said to be independent in the sense that each is an entirely separate, wholly functional computer system whose resources are controlled by it""s own copy of an operating system, such as IBM""s Multiple Virtual Storage/Enterprise Systems Architecture (MVS/ESA)(trademark) operating system. These computer systems are said to be cooperating in the sense that each is exchanging operational measurement data with the other computer systems in the set. These computer systems are said to be interconnected in the sense that each is able to transmit its operational measurement data to all the other systems in the set and to receive the analogous data from those other systems in the set. These computer systems comprise a set in the sense that they all have the characteristics cited above.
The present invention relates to managing performance in the sense that the operating system is adapted to establish a performance goal class for each distinct performance goal established for the set of systems; classifying each application program, in whichever system or systems of the set a given application program is to be executed, into its respective goal class as a part of scheduling the application program for execution; controlling the execution of the application programs so that the application programs that are assigned to a given goal class do meet the performance goal across all the systems, taken as a set.
The invention disclosed in U.S. Pat. No. 5,473,443, xe2x80x9cAPPARATUS AND METHOD FOR MANAGING A DATA PROCESSING SYSTEM WORKLOAD ACCORDING TO TWO OR MORE DISTINCT PROCESSING GOAL TYPESxe2x80x9d by J. D. Aman et al. (Aman), filed Apr. 4, 1994 and assigned to the assignee of the present invention and incorporated by reference, allows the specification of user performance standards and importance for standards and discloses how the operating system software can take over the responsibility for managing system performance according to the standards and importance, achieving the goals of the installation without requiring human intervention or specification of system performance parameters to guide such management. The Aman invention was; extended by the invention disclosed in U.S. Pat. No. 5,537,542, xe2x80x9cAPPARATUS AND METHOD FOR MANAGING SERVER WORKLOAD ACCORDING TO CLIENT PERFORMANCE GOALS IN A CLIENT/SERVER DATA PROCESSING SYSTEMxe2x80x9d by C. Eilert and B. Pierce, filed Apr. 4, 1994 and assigned to the assignee of the present invention and incorporated by reference, to the client-server environment. The invention disclosed in the U.S. patent application Ser. No. 08/383,168, xe2x80x9cAPPARATUS AND METHOD FOR MANAGING A DISTRIBUTED DATA PROCESSING SYSTEM WORKLOAD ACCORDING TO A PLURALITY OF DISTINCT PROCESSING GOAL TYPESxe2x80x9d by C. K. Eilert and P. Yocom (Eilert), filed on an even date herewith and assigned to the same assignee as the present invention is incorporated by reference. The Eilert invention extended Aman to the multi-system environment.
An unfulfilled requirement is to allow an installation to limit the processor resource consumed by workloads, to manage to workload performance standards within processor consumption standards, and to manage the performance standards and consumption standards across multiple systems.
The present invention allows the grouping of units of work into one or more resource groups and the specification of a consumption standard as a maximum amount of computer system processing capacity to be consumed by the units of work assigned to each resource group. The resource groups may have a multi-system scope. The computer operating system enforces the maximum specified. Limiting the processing capacity consumed by work units in individual computer systems is well known in the computer software art and is often called work-unit or program capping. Capping is usually accomplished by controlling the amount of time that a unit of work is available for dispatching by the dispatcher component of the operating system.
As in Aman and Eilert, the present invention also allows the specification of a performance standard comprising a goal for each of one or more user performance goal classes and the specification of the importance of achieving each goal. The present invention additionally allows the specification of a processor consumption standard comprising a grouping of user performance goal classes into processor resource consumption groups, each having a specified processor resource consumption maximum.
It is an object of the present invention that, given an awareness of the resource group maxima and the user performance goals and importance, the operating system takes on the responsibility for allocating computer system resources to executing work units such that those maxima, goals, and importance are best achieved.
Resource groups and user performance goal classes may span multiple interconnected, cooperating, independent computer systems over which the workload is distributed. Each local system collects workload performance and resource consumption data on the local system and periodically broadcasts a subset of the data to the remote systems. From the combination of the data collected on the local system and the data received from the remote systems, each system can independently determine the resource adjustments to make to meet the multi-system maxima, goals, and importance.